package code

// 泛型是1.18 版本新增的功能
func Min[T int | float32 | float64 | int64](x, y T) T {
	if x < y {
		return x
	}
	return y
}

type AllBaseType interface {
	int | float32 | float64 | int64
}

func Min2[T AllBaseType](x, y T) T {
	if x < y {
		return x
	}
	return y
}

func Min3[T AllBaseType, E []T](x T, y E) T {
	for _, v := range y {
		if x < v {
			return x
		}
	}
	return y[0]
}

type MyFanXing[T int | float32 | float64 | int64] struct {
	Nmae T
}

type MyFanXing2[T AllBaseType] struct {
	Nmae T
}

type MyFanXing3[T int | float32 | float64 | int64] interface {
	Nmae() T
}

// ~int, 是以int为底层的类型, 比如type MyInt int

func ReferenceInterface5() {

}
